﻿module Sustainalytics.Common {

    var mod = angular.module(commonModuleName);

    mod.directive('compile', ['$compile', function ($compile) {
        return function (scope, element, attrs) {
            scope.$watch(
                function (scope) {
                    // watch the 'compile' expression for changes
                    return scope.$eval(attrs.compile);
                },
                function (value) {
                    // when the 'compile' expression changes
                    // assign it into the current DOM
                    element.html(value);

                    // compile the new DOM and link it to the current
                    // scope.
                    // NOTE: we only compile .childNodes so that
                    // we don't get into infinite loop compiling ourselves
                    $compile(element.contents())(scope);
                }
                );
        };
    }]);

    mod.directive('snGetValue', function () {
        return {
            restrict: "A", //attribute
            require: 'ngModel',
            link: function (scope: any, element, attrs, ctrl) {
                scope.$$autocomplete = scope.$$autocomplete || {};
                scope.$$autocomplete[attrs.snGetValue] = function () {
                    return element.val();
                };

            }
        };
    });
}